package com.dces.jx.billtest.dataimport.model;

import com.dces.demo.dataimport.base.AbstractTempTable;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Getter;
import lombok.Setter;
import org.springframework.format.annotation.DateTimeFormat;

import javax.persistence.Column;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.Transient;
import java.math.BigDecimal;
import java.util.Date;

@Setter
@Getter
@Table(name = "t_demo_head_temp")
public class HeadTemp extends AbstractTempTable {
    /**
     *
     */
    @Id
    @Column(name = "sid")
    private  String sid;
    /**
     * 经营单位编码
     */
    @Column(name = "trade_code")
    private  String tradeCode;
    /**
     * 经营单位名称
     */
    @Column(name = "trade_name")
    private  String tradeName;
    /**
     * 账册编号
     */
    @Column(name = "ems_no")
    private  String emsNo;
    /**
     * 企业内部编号
     */
    @Column(name = "ems_list_no")
    private  String emsListNo;
    /**
     * 清单流水号
     */
    @Column(name = "bill_list_no")
    private  String billListNo;
    /**
     * 核注清单编号
     */
    @Column(name = "list_no")
    private  String listNo;
    /**
     * 报关申报企业编码
     */
    @Column(name = "agent_code")
    private  String agentCode;
    /**
     * 报关单申报单位代码(商检)
     */
    @Column(name = "agent_code_ciq")
    private  String agentCodeCiq;
    /**
     * 报关申报企业社会信用代码
     */
    @Column(name = "agent_credit_code")
    private  String agentCreditCode;
    /**
     * 报关申报企业名称
     */
    @Column(name = "agent_name")
    private  String agentName;
    /**
     * 提运单号
     */
    @Column(name = "bill_no")
    private  String billNo;
    /**
     * 业务类型
     */
    @Column(name = "business_type")
    private  String businessType;
    /**
     * 变更次数
     */
    @Column(name = "change_times")
    private  Integer changeTimes;
    /**
     * 清单归类原因
     */
    @Column(name = "classify_reason")
    private  String classifyReason;
    /**
     * 清单归类时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
    @Column(name = "classify_time")
    private Date classifyTime;
    /**
     * 清单归类
     */
    @Column(name = "classify_type")
    private  String classifyType;
    /**
     * 价格影响确认
     */
    @Column(name = "confirm_price")
    private  String confirmPrice;
    /**
     * 支付特许权使用费确认
     */
    @Column(name = "confirm_royalties")
    private  String confirmRoyalties;
    /**
     * 特殊关系确认
     */
    @Column(name = "confirm_special")
    private  String confirmSpecial;
    /**
     * 合同协议号
     */
    @Column(name = "contr_no")
    private  String contrNo;
    /**
     * 征免性质
     */
    @Column(name = "cut_mode")
    private  String cutMode;
    /**
     * 数据来源（0：固定 1：电子口岸 2：爬网 3：组合）
     */
    @Column(name = "data_source")
    private  String dataSource;
    /**
     * 报关标志
     */
    @Column(name = "dclcus_mark")
    private  String dclcusMark;
    /**
     * 报关类型
     */
    @Column(name = "dclcus_type")
    private  String dclcusType;
    /**
     * 申报地海关
     */
    @Column(name = "decl_customs")
    private  String declCustoms;
    /**
     * 申报通道
     */
    @Column(name = "declare_channel")
    private  String declareChannel;
    /**
     * 申报单位编码
     */
    @Column(name = "declare_code")
    private  String declareCode;
    /**
     * 申报单位社会信用代码
     */
    @Column(name = "declare_credit_code")
    private  String declareCreditCode;
    /**
     * 清单申报日期
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
    @Column(name = "declare_date")
    private  Date declareDate;
    /**
     * 清单申报日期-开始
     */
    @Transient
    private String declareDateFrom;
    /**
     * 清单申报日期-结束
     */
    @Transient
    private String declareDateTo;
    /**
     * 申报单位名称
     */
    @Column(name = "declare_name")
    private  String declareName;
    /**
     * 申报类型
     */
    @Column(name = "declare_type")
    private  String declareType;
    /**
     * 启运港
     */
    @Column(name = "desp_port")
    private  String despPort;
    /**
     * 经停港/指运港
     */
    @Column(name = "dest_port")
    private  String destPort;
    /**
     * 核算代码
     */
    @Column(name = "du_code")
    private  String duCode;
    /**
     * 自报自缴
     */
    @Column(name = "duty_self")
    private  String dutySelf;
    /**
     * 报关单申报日期
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
    @Column(name = "entry_declare_date")
    private  Date entryDeclareDate;
    /**
     * 报关单申报日期-开始
     */
    @Transient
    private String entryDeclareDateFrom;
    /**
     * 报关单申报日期-结束
     */
    @Transient
    private String entryDeclareDateTo;
    /**
     * 报关单报文ID
     */
    @Column(name = "entry_message_id")
    private  String entryMessageId;
    /**
     * 报关单编号
     */
    @Column(name = "entry_no")
    private  String entryNo;
    /**
     * 入境口岸/离境口岸
     */
    @Column(name = "entry_port")
    private  String entryPort;
    /**
     * 报关状态
     */
    @Column(name = "entry_status")
    private  String entryStatus;
    /**
     * 报关单类型
     */
    @Column(name = "entry_type")
    private  String entryType;
    /**
     * 错误信息
     */
    @Column(name = "error_msg")
    private  String errorMsg;
    /**
     * 运费币制
     */
    @Column(name = "fee_curr")
    private  String feeCurr;
    /**
     * 运费标记，&#x27;1&#x27;率;&#x27;2&#x27;单价;&#x27;3&#x27;总价
     */
    @Column(name = "fee_mark")
    private  String feeMark;
    /**
     * 运费／率
     */
    @Column(name = "fee_rate")
    private BigDecimal feeRate;
    /**
     * 运费备注
     */
    @Column(name = "fee_rate_note")
    private  String feeRateNote;
    /**
     * 报关单落地标志
     */
    @Column(name = "flag")
    private  String flag;
    /**
     * 正式核扣时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
    @Column(name = "formal_vrfded_date")
    private  Date formalVrfdedDate;
    /**
     * 料件成品标志
     */
    @Column(name = "g_mark")
    @JsonProperty("gMark")
    private  String gMark;
    /**
     * 毛重(公斤)
     */
    @Column(name = "gross_wt")
    private  BigDecimal grossWt;
    /**
     * 进出口日期
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
    @Column(name = "i_e_date")
    @JsonProperty("iEDate")
    private  Date iEDate;
    /**
     * 进出口标记
     */
    @Column(name = "i_e_mark")
    @JsonProperty("iEMark")
    private  String iEMark;
    /**
     * 进境关别/出境关别
     */
    @Column(name = "i_e_port")
    @JsonProperty("iEPort")
    private  String iEPort;
    /**
     * 申报人IC卡号
     */
    @Column(name = "ic_card_no")
    private  String icCardNo;
    /**
     * 入库时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
    @Column(name = "indb_time")
    private  Date indbTime;
    /**
     * 录入企业编码
     */
    @Column(name = "input_code")
    private  String inputCode;
    /**
     * 录入企业社会信用代码
     */
    @Column(name = "input_credit_code")
    private  String inputCreditCode;
    /**
     * 录入日期
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
    @Column(name = "input_date")
    private  Date inputDate;
    /**
     * 录入日期-开始
     */
    @Transient
    private String inputDateFrom;
    /**
     * 录入日期-结束
     */
    @Transient
    private String inputDateTo;
    /**
     * 录入单位名称
     */
    @Column(name = "input_name")
    private  String inputName;
    /**
     * 插入时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
    @Column(name = "insert_time")
    private  Date insertTime;
    /**
     * 插入人
     */
    @Column(name = "insert_user")
    private  String insertUser;
    /**
     * 保险费币制
     */
    @Column(name = "insur_curr")
    private  String insurCurr;
    /**
     * 保险费标记，&#x27;1&#x27;率;&#x27;2&#x27;单价;&#x27;3&#x27;总价
     */
    @Column(name = "insur_mark")
    private  String insurMark;
    /**
     * 保险费／率
     */
    @Column(name = "insur_rate")
    private  BigDecimal insurRate;
    /**
     * 保费备注
     */
    @Column(name = "insur_rate_note")
    private  String insurRateNote;
    /**
     * 商品项数
     */
    @Column(name = "item_cnt")
    private  Integer itemCnt;
    /**
     * 许可证号
     */
    @Column(name = "license_no")
    private  String licenseNo;
    /**
     * 清单进出卡口状态
     */
    @Column(name = "list_iochkpt_status")
    private  String listIochkptStatus;
    /**
     * 清单类型
     */
    @Column(name = "list_type")
    private  String listType;
    /**
     * 主管海关
     */
    @Column(name = "master_customs")
    private  String masterCustoms;
    /**
     * 归并类型
     */
    @Column(name = "merge_type")
    private  String mergeType;
    /**
     * 清单报文ID
     */
    @Column(name = "message_id")
    private  String messageId;
    /**
     * 净重(公斤)
     */
    @Column(name = "net_wt")
    private  BigDecimal netWt;
    /**
     * 备注
     */
    @Column(name = "note")
    private  String note;
    /**
     * 本地备注1
     */
    @Column(name = "note1")
    private  String note1;
    /**
     * 本地备注2
     */
    @Column(name = "note2")
    private  String note2;
    /**
     * 本地备注3
     */
    @Column(name = "note3")
    private  String note3;
    /**
     * 原始清单流水号
     */
    @Column(name = "ori_bill_list_no")
    private  String oriBillListNo;
    /**
     * 杂费币制
     */
    @Column(name = "other_curr")
    private  String otherCurr;
    /**
     * 杂费标志，&#x27;1&#x27;率;&#x27;2&#x27; 单价;&#x27;3&#x27;总价
     */
    @Column(name = "other_mark")
    private  String otherMark;
    /**
     * 杂费／率
     */
    @Column(name = "other_rate")
    private  BigDecimal otherRate;
    /**
     * 杂费备注
     */
    @Column(name = "other_rate_note")
    private  String otherRateNote;
    /**
     * 境外发货人;境外收货人代码
     */
    @Column(name = "overseas_shipper_aeo")
    private  String overseasShipperAeo;
    /**
     * 境外发货人/境外收货人
     */
    @Column(name = "overseas_shipper_name")
    private  String overseasShipperName;
    /**
     * 件数
     */
    @Column(name = "pack_num")
    private  Integer packNum;
    /**
     * 核放单生成标志代码
     */
    @Column(name = "passport_used_mark")
    private  String passportUsedMark;
    /**
     * 清单预录入统一编号
     */
    @Column(name = "pre_seq_no")
    private  String preSeqNo;
    /**
     * 预核扣时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
    @Column(name = "pre_vrfded_date")
    private  Date preVrfdedDate;
    /**
     * 加工单位编码
     */
    @Column(name = "receive_code")
    private  String receiveCode;
    /**
     * 消费使用单位/生产消费单位
     */
    @Column(name = "receive_code_ciq")
    private  String receiveCodeCiq;
    /**
     * 加工单位社会信用代码
     */
    @Column(name = "receive_credit_code")
    private  String receiveCreditCode;
    /**
     * 加工单位名称
     */
    @Column(name = "receive_name")
    private  String receiveName;
    /**
     * 关联手(账)册编号
     */
    @Column(name = "rel_ems_no")
    private  String relEmsNo;
    /**
     * 关联报关单申报单位编码
     */
    @Column(name = "rel_entry_declare_code")
    private  String relEntryDeclareCode;
    /**
     * 关联报关单申报单位社会统一信用代码
     */
    @Column(name = "rel_entry_declare_credit_code")
    private  String relEntryDeclareCreditCode;
    /**
     * 关联报关单申报单位名称
     */
    @Column(name = "rel_entry_declare_name")
    private  String relEntryDeclareName;
    /**
     * 关联报关单编号
     */
    @Column(name = "rel_entry_no")
    private  String relEntryNo;
    /**
     * 关联报关单收发货人编码
     */
    @Column(name = "rel_entry_receive_code")
    private  String relEntryReceiveCode;
    /**
     * 关联报关单收发货人社会统一信用代码
     */
    @Column(name = "rel_entry_receive_credit_code")
    private  String relEntryReceiveCreditCode;
    /**
     * 关联报关单收发货人名称
     */
    @Column(name = "rel_entry_receive_name")
    private  String relEntryReceiveName;
    /**
     * 关联报关单消费使用单位编码/关联报关单生产销售单位编码
     */
    @Column(name = "rel_entry_trade_code")
    private  String relEntryTradeCode;
    /**
     * 关联报关单消费使用单位社会信用代码/关联报关单生产销售单位社会信用代码
     */
    @Column(name = "rel_entry_trade_credit_code")
    private  String relEntryTradeCreditCode;
    /**
     * 关联报关单消费使用单位名称/关联报关单生产销售单位名称
     */
    @Column(name = "rel_entry_trade_name")
    private  String relEntryTradeName;
    /**
     * 关联核注清单编号
     */
    @Column(name = "rel_list_no")
    private  String relListNo;
    /**
     * 申请表编号
     */
    @Column(name = "rotate_apply_no")
    private  String rotateApplyNo;
    /**
     * 流转类型
     */
    @Column(name = "rotate_type")
    private  String rotateType;
    /**
     * 清单申报人
     */
    @Column(name = "send_user")
    private  String sendUser;
    /**
     * 插入人
     */
    @Column(name = "update_user")
    private  String updateUser;
    /**
     * 报关单统一编号
     */
    @Column(name = "seq_no")
    private  String seqNo;
    /**
     * 清单状态
     */
    @Column(name = "status")
    private  String status;
    /**
     * 经营单位编码(商检)
     */
    @Column(name = "trade_code_ciq")
    private  String tradeCodeCiq;
    /**
     * 启运国(地区)/运抵国(地区）
     */
    @Column(name = "trade_country")
    private  String tradeCountry;
    /**
     * 经营单位社会信用代码
     */
    @Column(name = "trade_credit_code")
    private  String tradeCreditCode;
    /**
     * 监管方式
     */
    @Column(name = "trade_mode")
    private  String tradeMode;
    /**
     * 贸易国（地区）
     */
    @Column(name = "trade_nation")
    private  String tradeNation;
    /**
     * 运输方式
     */
    @Column(name = "traf_mode")
    private  String trafMode;
    /**
     * 运输工具名称及航次号
     */
    @Column(name = "traf_name")
    private  String trafName;
    /**
     * 成交方式
     */
    @Column(name = "trans_mode")
    private  String transMode;
    /**
     * 录入日期
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
    @Column(name = "update_time")
    private  Date updateTime;
    /**
     * 录入日期-开始
     */
    @Transient
    private String updateTimeFrom;
    /**
     * 录入日期-结束
     */
    @Transient
    private String updateTimeTo;
    /**
     * 航次号
     */
    @Column(name = "voyage_no")
    private  String voyageNo;
    /**
     * 核扣标志
     */
    @Column(name = "vrfded_mark")
    private  String vrfdedMark;
    /**
     * 核扣方式代码
     */
    @Column(name = "vrfded_mode")
    private  String vrfdedMode;
    /**
     * 货物存放点
     */
    @Column(name = "warehouse")
    private  String warehouse;
    /**
     * 包装种类 多个,分割
     */
    @Column(name = "wrap_type")
    private  String wrapType;

}
